// 清空
// /Users/apple/Desktop/proj/client/uni-app/infomate-uni-app/static/hybrid/html/web
// 目录下的全部文件,
// 再把
// /Users/apple/Desktop/proj/client/uni-app/infomate-uni-app/unpackage/dist/build/web
// 目录下的文件全部复制到
// /Users/apple/Desktop/proj/client/uni-app/infomate-uni-app/static/hybrid/html/web
// 下

const fs = require('fs');
const path = require('path');
const { promisify } = require('util');

// 异步版本的 fs 函数
const readdir = promisify(fs.readdir);
const stat = promisify(fs.stat);
const unlink = promisify(fs.unlink);
const rmdir = promisify(fs.rmdir);
const copyFile = promisify(fs.copyFile);

// 清空目录函数
async function emptyDirectory(dirPath) {
    try {
        const files = await readdir(dirPath);
        for (const file of files) {
            const curPath = path.join(dirPath, file);
            const fileStat = await stat(curPath);
            if (fileStat.isDirectory()) {
                // 如果是目录，递归清空
                await emptyDirectory(curPath);
                await rmdir(curPath);
            } else {
                // 如果是文件，删除文件
                await unlink(curPath);
            }
        }
        console.log(`目录 ${dirPath} 已清空。`);
    } catch (error) {
        console.error(`清空目录 ${dirPath} 时出错:`, error);
    }
}

// 复制目录函数
async function copyDirectory(srcDir, destDir) {
    try {
        const files = await readdir(srcDir);
        for (const file of files) {
            const srcPath = path.join(srcDir, file);
            const destPath = path.join(destDir, file);
            const fileStat = await stat(srcPath);
            if (fileStat.isDirectory()) {
                // 如果是目录，创建目标目录并递归复制
                if (!fs.existsSync(destPath)) {
                    fs.mkdirSync(destPath);
                }
                await copyDirectory(srcPath, destPath);
            } else {
                // 如果是文件，复制文件
                await copyFile(srcPath, destPath);
            }
        }
        console.log(`目录 ${srcDir} 已复制到 ${destDir}。`);
    } catch (error) {
        console.error(`复制目录 ${srcDir} 到 ${destDir} 时出错:`, error);
    }
}

// 主函数
async function main() {
    const sourceDir = '/Users/apple/Desktop/proj/client/uni-app/record/unpackage/dist/build/web';
    const destinationDir = '/Users/apple/Desktop/proj/client/uni-app/record/static/hybrid/web';

    // 清空目标目录
    await emptyDirectory(destinationDir);

    // 复制源目录到目标目录
    await copyDirectory(sourceDir, destinationDir);
}

// 执行主函数
main();